Skip to content

feat: support MAT releases at least two years old, and test the newest MAT in CI - #131

Merged
vlsi merged 2 commits into
mainfrom
mat-support-window
Nov 8, 2026
Merged

vlsi merged 2 commits into
mainfrom
mat-support-window

Conversation

@vlsi

@vlsi vlsi commented Nov 8, 2026

Copy link
Copy Markdown
Owner

Breaking changes. The plugin requires Eclipse Memory Analyzer 1.15.0 or later. MAT 1.13 and 1.14 can no longer install the next release; 1.6.2 stays the last release for them.

The plugin declared MAT 1.13.0 as its minimum (the test bundle 1.8.0, the README 0.14.0), compiled against Eclipse 2022-12, and was never tested on a current MAT. Nothing moved the minimum forward, so a break on MAT 1.17 would surface only in a user report.

The plugin now supports the newest MAT release that is at least two years old, documented under "Supported versions" in the README. Today that is MAT 1.15.0 on Eclipse 4.30 and Java 17:

  • MatCalciteTargetPlatform.target lists the oldest supported MAT; the build and the update site use it.
  • mat-latest.target lists the newest MAT (1.17.0 on Eclipse 4.40, Java 21); ./mvnw -Pmat-latest verify builds and tests against it.
  • The Maven libraries both targets need move to dependencies.target.

Renovate keeps both ends current:

  • eclipse-mat raises the minimum in the main target, the manifests and the README once a MAT release is 730 days old (minimumReleaseAge with internalChecksFilter: strict, release dates from the eclipse-mat/mat tags). The PR is not automerged, and its body lists the manual steps: the Eclipse release, the Java version where the new MAT needs a newer one, and the CHANGELOG entry. A local dry run (Renovate 44.222.4) marks 1.15.0 → 1.16.1 as pending; 1.16.0 becomes eligible on 2026-12-17.
  • eclipse-mat-latest and eclipse-platform-latest move mat-latest.target to the newest release listed on download.eclipse.org, which publishes a release months before GitHub gets the tag. The dry run offers Eclipse 4.40 → 4.41.

CI builds a random matrix with @vlsi/github-actions-random-matrix in .github/workflows/matrix.mjs. Every run covers the oldest and the newest MAT, Java 17, 21 and 25, and Ubuntu and Windows. It also varies the JDK vendor, the locale (tr_TR included) and the time zone (Pacific/Chatham included), which may surface failures unrelated to MAT. Exactly one row, the oldest MAT on its Java on Ubuntu, uploads and publishes the update site. The Java axis starts at the Java the oldest MAT requires, so the matrix stays satisfiable when that becomes Java 21.

Verification. Built locally: the oldest MAT on JDK 17, and -Pmat-latest on JDK 21 with -Duser.language=tr -Duser.country=TR -Duser.timezone=Pacific/Chatham, 49 tests each, no failures; the test runtime resolved org.eclipse.mat.api 1.17.0 for the latter. Windows, Java 25 and JDK vendors other than zulu and liberica run for the first time in this PR's CI.

Scope. Stacked on #130. #121 should be rebased onto this and drop its raise of the minimum to MAT 1.17 and Java 21. The eclipse-repository property in the root pom, used only by tycho-eclipserun-plugin for a local launch, still points at Eclipse 2022-12. The eclipse-mat/mat repository has no R_1.17.0 tag yet; Renovate needs it before MAT 1.17 can become the minimum in 2028.

🤖 Generated with Claude Code

@vlsi
vlsi added this pull request to stack #132 November 8, 2026 19:11
@vlsi
vlsi force-pushed the mat-support-window branch from dcd476d to 8d73945 Compare November 8, 2026 20:19
Base automatically changed from renovate-tycho-target to main November 8, 2026 20:27
vlsi and others added 2 commits November 8, 2026 23:27
…t MAT in CI

The plugin compiled against an Eclipse 2022-12 platform and declared MAT 1.13.0 (tests 1.8.0) as the minimum, while
the README claimed 0.14.0. Nothing kept the minimum moving, and nothing tested the plugin on a current MAT, so a break
on MAT 1.17 would surface only in a user report.

The plugin now supports the newest MAT release that is at least two years old, which today is MAT 1.15.0 on Eclipse
4.30 and Java 17. MatCalciteTargetPlatform.target lists that MAT, and the build and the update site use it.
mat-latest.target lists the newest MAT (1.17.0 on Eclipse 4.40, Java 21); the mat-latest Maven profile builds and
tests against it. The Maven libraries both targets need move to dependencies.target.

Renovate keeps both ends current:
- eclipse-mat raises the minimum in the main target, the manifests and README.md once a MAT release is 730 days old
  (minimumReleaseAge with internalChecksFilter=strict). The PR is not automerged, and its body lists the manual steps:
  the Eclipse release, the Java version where the new MAT needs a newer one, and the CHANGELOG entry. The eclipse-mat/mat
  GitHub tags give the release dates.
- eclipse-mat-latest and eclipse-platform-latest move mat-latest.target to the newest release listed on
  download.eclipse.org, which publishes a release months before GitHub gets its tag.

CI builds a random matrix with @vlsi/github-actions-random-matrix (.github/workflows/matrix.mjs). Every run covers the
oldest and the newest MAT, Java 17, 21 and 25, and Ubuntu and Windows; it also varies the JDK vendor, the locale
(tr_TR included) and the time zone (Pacific/Chatham included), which may surface failures unrelated to MAT. Exactly
one row, the oldest MAT on its Java on Ubuntu, uploads and publishes the update site.

User-visible:
The plugin requires Eclipse Memory Analyzer 1.15.0 or later; MAT 1.13 and 1.14 can no longer install it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
testStackTraces failed in every CI job on MAT 1.15 and 1.17:

    expected:<...ng.Object.wait(J)V ([Native Method])> but was:<...ng.Object.wait(J)V ([Object.java(Native Method)])>

MAT 1.15 and later print a native frame with its source file. The test passed locally only because
MatCalciteTest/dumps kept the *.index and .threads files an older MAT had written, and MAT reuses them
instead of parsing the dump again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vlsi
vlsi force-pushed the mat-support-window branch from 8d73945 to ae687d5 Compare November 8, 2026 20:27
@vlsi
vlsi enabled stacked auto-merge (squash) November 8, 2026 20:28
@vlsi
vlsi merged commit a605c63 into main Nov 8, 2026
6 checks passed
@vlsi
vlsi deleted the mat-support-window branch November 8, 2026 20:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant